home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / JComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  34.9 KB  |  2,006 lines

  1. package javax.swing;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.AWTKeyStroke;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dimension;
  9. import java.awt.FocusTraversalPolicy;
  10. import java.awt.Font;
  11. import java.awt.FontMetrics;
  12. import java.awt.Graphics;
  13. import java.awt.Insets;
  14. import java.awt.Point;
  15. import java.awt.Rectangle;
  16. import java.awt.Window;
  17. import java.awt.Component.BaselineResizeBehavior;
  18. import java.awt.event.ActionListener;
  19. import java.awt.event.KeyEvent;
  20. import java.awt.event.MouseEvent;
  21. import java.awt.peer.LightweightPeer;
  22. import java.beans.PropertyChangeListener;
  23. import java.beans.PropertyVetoException;
  24. import java.beans.VetoableChangeListener;
  25. import java.beans.VetoableChangeSupport;
  26. import java.io.IOException;
  27. import java.io.ObjectInputStream;
  28. import java.io.ObjectOutputStream;
  29. import java.io.Serializable;
  30. import java.util.ArrayList;
  31. import java.util.Enumeration;
  32. import java.util.EventListener;
  33. import java.util.HashSet;
  34. import java.util.Hashtable;
  35. import java.util.List;
  36. import java.util.Locale;
  37. import java.util.Set;
  38. import javax.accessibility.AccessibleContext;
  39. import javax.accessibility.AccessibleState;
  40. import javax.swing.border.AbstractBorder;
  41. import javax.swing.border.Border;
  42. import javax.swing.event.AncestorListener;
  43. import javax.swing.event.EventListenerList;
  44. import javax.swing.plaf.ComponentUI;
  45. import javax.swing.table.JTableHeader;
  46. import sun.awt.RequestFocusController;
  47. import sun.swing.SwingUtilities2;
  48. import sun.swing.UIClientPropertyKey;
  49.  
  50. public abstract class JComponent extends Container implements Serializable, TransferHandler.HasGetTransferHandler {
  51.    private static final String uiClassID = "ComponentUI";
  52.    private static final StringBuffer ANCESTOR_NOTIFIER_KEY = new StringBuffer("AncestorNotifier");
  53.    private static final StringBuffer TRANSFER_HANDLER_KEY = new StringBuffer("TransferHandler");
  54.    private static final StringBuffer INPUT_VERIFIER_KEY = new StringBuffer("InputVerifier");
  55.    private static final Hashtable readObjectCallbacks = new Hashtable(1);
  56.    private static Set<KeyStroke> managingFocusForwardTraversalKeys;
  57.    private static Set<KeyStroke> managingFocusBackwardTraversalKeys;
  58.    private static final int NOT_OBSCURED = 0;
  59.    private static final int PARTIALLY_OBSCURED = 1;
  60.    private static final int COMPLETELY_OBSCURED = 2;
  61.    static boolean DEBUG_GRAPHICS_LOADED;
  62.    private boolean isAlignmentXSet;
  63.    private float alignmentX;
  64.    private boolean isAlignmentYSet;
  65.    private float alignmentY;
  66.    // $FF: renamed from: ui javax.swing.plaf.ComponentUI
  67.    protected transient ComponentUI field_0;
  68.    protected EventListenerList listenerList = new EventListenerList();
  69.    private transient ArrayTable clientProperties;
  70.    private VetoableChangeSupport vetoableChangeSupport;
  71.    private boolean autoscrolls;
  72.    private Border border;
  73.    private int flags;
  74.    private InputVerifier inputVerifier = null;
  75.    private boolean verifyInputWhenFocusTarget = true;
  76.    transient Component paintingChild;
  77.    public static final int WHEN_FOCUSED = 0;
  78.    public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1;
  79.    public static final int WHEN_IN_FOCUSED_WINDOW = 2;
  80.    public static final int UNDEFINED_CONDITION = -1;
  81.    private static final String KEYBOARD_BINDINGS_KEY = "_KeyboardBindings";
  82.    private static final String WHEN_IN_FOCUSED_WINDOW_BINDINGS = "_WhenInFocusedWindow";
  83.    public static final String TOOL_TIP_TEXT_KEY = "ToolTipText";
  84.    private static final String NEXT_FOCUS = "nextFocus";
  85.    private JPopupMenu popupMenu;
  86.    private static final int IS_DOUBLE_BUFFERED = 0;
  87.    private static final int ANCESTOR_USING_BUFFER = 1;
  88.    private static final int IS_PAINTING_TILE = 2;
  89.    private static final int IS_OPAQUE = 3;
  90.    private static final int KEY_EVENTS_ENABLED = 4;
  91.    private static final int FOCUS_INPUTMAP_CREATED = 5;
  92.    private static final int ANCESTOR_INPUTMAP_CREATED = 6;
  93.    private static final int WIF_INPUTMAP_CREATED = 7;
  94.    private static final int ACTIONMAP_CREATED = 8;
  95.    private static final int CREATED_DOUBLE_BUFFER = 9;
  96.    private static final int IS_PRINTING = 11;
  97.    private static final int IS_PRINTING_ALL = 12;
  98.    private static final int IS_REPAINTING = 13;
  99.    private static final int WRITE_OBJ_COUNTER_FIRST = 14;
  100.    private static final int RESERVED_1 = 15;
  101.    private static final int RESERVED_2 = 16;
  102.    private static final int RESERVED_3 = 17;
  103.    private static final int RESERVED_4 = 18;
  104.    private static final int RESERVED_5 = 19;
  105.    private static final int RESERVED_6 = 20;
  106.    private static final int WRITE_OBJ_COUNTER_LAST = 21;
  107.    private static final int REQUEST_FOCUS_DISABLED = 22;
  108.    private static final int INHERITS_POPUP_MENU = 23;
  109.    private static final int OPAQUE_SET = 24;
  110.    private static final int AUTOSCROLLS_SET = 25;
  111.    private static final int FOCUS_TRAVERSAL_KEYS_FORWARD_SET = 26;
  112.    private static final int FOCUS_TRAVERSAL_KEYS_BACKWARD_SET = 27;
  113.    private static boolean inInputVerifier;
  114.    private static List tempRectangles = new ArrayList(11);
  115.    private InputMap focusInputMap;
  116.    private InputMap ancestorInputMap;
  117.    private ComponentInputMap windowInputMap;
  118.    private ActionMap actionMap;
  119.    private static final String defaultLocale = "JComponent.defaultLocale";
  120.    private static Component componentObtainingGraphicsFrom;
  121.    private static Object componentObtainingGraphicsFromLock = new StringBuilder("componentObtainingGraphicsFrom");
  122.    private transient Object aaTextInfo;
  123.    static final RequestFocusController focusController = new 1();
  124.    protected AccessibleContext accessibleContext = null;
  125.  
  126.    static Graphics safelyGetGraphics(Component var0) {
  127.       return safelyGetGraphics(var0, SwingUtilities.getRoot(var0));
  128.    }
  129.  
  130.    static Graphics safelyGetGraphics(Component var0, Component var1) {
  131.       synchronized(componentObtainingGraphicsFromLock) {
  132.          componentObtainingGraphicsFrom = var1;
  133.          Graphics var3 = var0.getGraphics();
  134.          componentObtainingGraphicsFrom = null;
  135.          return var3;
  136.       }
  137.    }
  138.  
  139.    static void getGraphicsInvoked(Component var0) {
  140.       if (!isComponentObtainingGraphicsFrom(var0)) {
  141.          JRootPane var1 = ((RootPaneContainer)var0).getRootPane();
  142.          if (var1 != null) {
  143.             var1.disableTrueDoubleBuffering();
  144.          }
  145.       }
  146.  
  147.    }
  148.  
  149.    private static boolean isComponentObtainingGraphicsFrom(Component var0) {
  150.       synchronized(componentObtainingGraphicsFromLock) {
  151.          return componentObtainingGraphicsFrom == var0;
  152.       }
  153.    }
  154.  
  155.    static Set<KeyStroke> getManagingFocusForwardTraversalKeys() {
  156.       synchronized(JComponent.class) {
  157.          if (managingFocusForwardTraversalKeys == null) {
  158.             managingFocusForwardTraversalKeys = new HashSet(1);
  159.             managingFocusForwardTraversalKeys.add(KeyStroke.getKeyStroke(9, 2));
  160.          }
  161.       }
  162.  
  163.       return managingFocusForwardTraversalKeys;
  164.    }
  165.  
  166.    static Set<KeyStroke> getManagingFocusBackwardTraversalKeys() {
  167.       synchronized(JComponent.class) {
  168.          if (managingFocusBackwardTraversalKeys == null) {
  169.             managingFocusBackwardTraversalKeys = new HashSet(1);
  170.             managingFocusBackwardTraversalKeys.add(KeyStroke.getKeyStroke(9, 3));
  171.          }
  172.       }
  173.  
  174.       return managingFocusBackwardTraversalKeys;
  175.    }
  176.  
  177.    private static Rectangle fetchRectangle() {
  178.       synchronized(tempRectangles) {
  179.          int var2 = tempRectangles.size();
  180.          Rectangle var1;
  181.          if (var2 > 0) {
  182.             var1 = (Rectangle)tempRectangles.remove(var2 - 1);
  183.          } else {
  184.             var1 = new Rectangle(0, 0, 0, 0);
  185.          }
  186.  
  187.          return var1;
  188.       }
  189.    }
  190.  
  191.    private static void recycleRectangle(Rectangle var0) {
  192.       synchronized(tempRectangles) {
  193.          tempRectangles.add(var0);
  194.       }
  195.    }
  196.  
  197.    public void setInheritsPopupMenu(boolean var1) {
  198.       boolean var2 = this.getFlag(23);
  199.       this.setFlag(23, var1);
  200.       this.firePropertyChange("inheritsPopupMenu", var2, var1);
  201.    }
  202.  
  203.    public boolean getInheritsPopupMenu() {
  204.       return this.getFlag(23);
  205.    }
  206.  
  207.    public void setComponentPopupMenu(JPopupMenu var1) {
  208.       if (var1 != null) {
  209.          this.enableEvents(16L);
  210.       }
  211.  
  212.       JPopupMenu var2 = this.popupMenu;
  213.       this.popupMenu = var1;
  214.       this.firePropertyChange("componentPopupMenu", var2, var1);
  215.    }
  216.  
  217.    public JPopupMenu getComponentPopupMenu() {
  218.       if (!this.getInheritsPopupMenu()) {
  219.          return this.popupMenu;
  220.       } else if (this.popupMenu != null) {
  221.          return this.popupMenu;
  222.       } else {
  223.          for(Container var1 = this.getParent(); var1 != null; var1 = var1.getParent()) {
  224.             if (var1 instanceof JComponent) {
  225.                return ((JComponent)var1).getComponentPopupMenu();
  226.             }
  227.  
  228.             if (var1 instanceof Window || var1 instanceof Applet) {
  229.                break;
  230.             }
  231.          }
  232.  
  233.          return null;
  234.       }
  235.    }
  236.  
  237.    public JComponent() {
  238.       this.enableEvents(8L);
  239.       if (this.isManagingFocus()) {
  240.          LookAndFeel.installProperty(this, "focusTraversalKeysForward", getManagingFocusForwardTraversalKeys());
  241.          LookAndFeel.installProperty(this, "focusTraversalKeysBackward", getManagingFocusBackwardTraversalKeys());
  242.       }
  243.  
  244.       super.setLocale(getDefaultLocale());
  245.    }
  246.  
  247.    public void updateUI() {
  248.    }
  249.  
  250.    protected void setUI(ComponentUI var1) {
  251.       if (this.field_0 != null) {
  252.          this.field_0.uninstallUI(this);
  253.          if (this.clientProperties != null) {
  254.             synchronized(this.clientProperties) {
  255.                Object[] var3 = this.clientProperties.getKeys((Object[])null);
  256.                if (var3 != null) {
  257.                   for(Object var7 : var3) {
  258.                      if (var7 instanceof UIClientPropertyKey) {
  259.                         this.putClientProperty(var7, (Object)null);
  260.                      }
  261.                   }
  262.                }
  263.             }
  264.          }
  265.       }
  266.  
  267.       this.aaTextInfo = UIManager.getDefaults().get(SwingUtilities2.AA_TEXT_PROPERTY_KEY);
  268.       ComponentUI var2 = this.field_0;
  269.       this.field_0 = var1;
  270.       if (this.field_0 != null) {
  271.          this.field_0.installUI(this);
  272.       }
  273.  
  274.       this.firePropertyChange("UI", var2, var1);
  275.       this.revalidate();
  276.       this.repaint();
  277.    }
  278.  
  279.    public String getUIClassID() {
  280.       return "ComponentUI";
  281.    }
  282.  
  283.    protected Graphics getComponentGraphics(Graphics var1) {
  284.       Object var2 = var1;
  285.       if (this.field_0 != null && DEBUG_GRAPHICS_LOADED && DebugGraphics.debugComponentCount() != 0 && this.shouldDebugGraphics() != 0 && !(var1 instanceof DebugGraphics)) {
  286.          var2 = new DebugGraphics(var1, this);
  287.       }
  288.  
  289.       ((Graphics)var2).setColor(this.getForeground());
  290.       ((Graphics)var2).setFont(this.getFont());
  291.       return (Graphics)var2;
  292.    }
  293.  
  294.    protected void paintComponent(Graphics var1) {
  295.       if (this.field_0 != null) {
  296.          Graphics var2 = var1 == null ? null : var1.create();
  297.  
  298.          try {
  299.             this.field_0.update(var2, this);
  300.          } finally {
  301.             var2.dispose();
  302.          }
  303.       }
  304.  
  305.    }
  306.  
  307.    protected void paintChildren(Graphics var1) {
  308.       Graphics var3 = var1;
  309.       synchronized(this.getTreeLock()) {
  310.          int var5 = this.getComponentCount() - 1;
  311.          if (var5 >= 0) {
  312.             if (this.paintingChild != null && this.paintingChild instanceof JComponent && ((JComponent)this.paintingChild).isOpaque()) {
  313.                while(var5 >= 0 && this.getComponent(var5) != this.paintingChild) {
  314.                   --var5;
  315.                }
  316.             }
  317.  
  318.             Rectangle var6 = fetchRectangle();
  319.             boolean var7 = !this.isOptimizedDrawingEnabled() && this.checkIfChildObscuredBySibling();
  320.             Rectangle var8 = null;
  321.             if (var7) {
  322.                var8 = var3.getClipBounds();
  323.                if (var8 == null) {
  324.                   var8 = new Rectangle(0, 0, this.getWidth(), this.getHeight());
  325.                }
  326.             }
  327.  
  328.             for(boolean var9 = this.getFlag(11); var5 >= 0; --var5) {
  329.                Component var10 = this.getComponent(var5);
  330.                boolean var2 = var10 instanceof JComponent;
  331.                if (var10 != null && (var2 || isLightweightComponent(var10)) && var10.isVisible()) {
  332.                   Rectangle var11 = var10.getBounds(var6);
  333.                   boolean var12 = var1.hitClip(var11.x, var11.y, var11.width, var11.height);
  334.                   if (var12) {
  335.                      if (var7 && var5 > 0) {
  336.                         int var13 = var11.x;
  337.                         int var14 = var11.y;
  338.                         int var15 = var11.width;
  339.                         int var16 = var11.height;
  340.                         SwingUtilities.computeIntersection(var8.x, var8.y, var8.width, var8.height, var11);
  341.                         if (this.getObscuredState(var5, var11.x, var11.y, var11.width, var11.height) == 2) {
  342.                            continue;
  343.                         }
  344.  
  345.                         var11.x = var13;
  346.                         var11.y = var14;
  347.                         var11.width = var15;
  348.                         var11.height = var16;
  349.                      }
  350.  
  351.                      Graphics var23 = var3.create(var11.x, var11.y, var11.width, var11.height);
  352.                      var23.setColor(var10.getForeground());
  353.                      var23.setFont(var10.getFont());
  354.                      boolean var24 = false;
  355.  
  356.                      try {
  357.                         if (var2) {
  358.                            if (this.getFlag(1)) {
  359.                               ((JComponent)var10).setFlag(1, true);
  360.                               var24 = true;
  361.                            }
  362.  
  363.                            if (this.getFlag(2)) {
  364.                               ((JComponent)var10).setFlag(2, true);
  365.                               var24 = true;
  366.                            }
  367.  
  368.                            if (!var9) {
  369.                               ((JComponent)var10).paint(var23);
  370.                            } else if (!this.getFlag(12)) {
  371.                               var10.print(var23);
  372.                            } else {
  373.                               var10.printAll(var23);
  374.                            }
  375.                         } else if (!var9) {
  376.                            var10.paint(var23);
  377.                         } else if (!this.getFlag(12)) {
  378.                            var10.print(var23);
  379.                         } else {
  380.                            var10.printAll(var23);
  381.                         }
  382.                      } finally {
  383.                         var23.dispose();
  384.                         if (var24) {
  385.                            ((JComponent)var10).setFlag(1, false);
  386.                            ((JComponent)var10).setFlag(2, false);
  387.                         }
  388.  
  389.                      }
  390.                   }
  391.                }
  392.             }
  393.  
  394.             recycleRectangle(var6);
  395.          }
  396.       }
  397.    }
  398.  
  399.    protected void paintBorder(Graphics var1) {
  400.       Border var2 = this.getBorder();
  401.       if (var2 != null) {
  402.          var2.paintBorder(this, var1, 0, 0, this.getWidth(), this.getHeight());
  403.       }
  404.  
  405.    }
  406.  
  407.    public void update(Graphics var1) {
  408.       this.paint(var1);
  409.    }
  410.  
  411.    public void paint(Graphics var1) {
  412.       boolean var2 = false;
  413.       if (this.getWidth() > 0 && this.getHeight() > 0) {
  414.          Graphics var3 = this.getComponentGraphics(var1);
  415.          Graphics var4 = var3.create();
  416.  
  417.          try {
  418.             RepaintManager var5 = RepaintManager.currentManager(this);
  419.             Rectangle var6 = var4.getClipBounds();
  420.             int var7;
  421.             int var8;
  422.             int var9;
  423.             int var10;
  424.             if (var6 == null) {
  425.                var8 = 0;
  426.                var7 = 0;
  427.                var9 = this.getWidth();
  428.                var10 = this.getHeight();
  429.             } else {
  430.                var7 = var6.x;
  431.                var8 = var6.y;
  432.                var9 = var6.width;
  433.                var10 = var6.height;
  434.             }
  435.  
  436.             if (var9 > this.getWidth()) {
  437.                var9 = this.getWidth();
  438.             }
  439.  
  440.             if (var10 > this.getHeight()) {
  441.                var10 = this.getHeight();
  442.             }
  443.  
  444.             if (this.getParent() != null && !(this.getParent() instanceof JComponent)) {
  445.                this.adjustPaintFlags();
  446.                var2 = true;
  447.             }
  448.  
  449.             boolean var13 = this.getFlag(11);
  450.             if (!var13 && var5.isDoubleBufferingEnabled() && !this.getFlag(1) && this.isDoubleBuffered()) {
  451.                var5.beginPaint();
  452.  
  453.                try {
  454.                   var5.paint(this, this, var4, var7, var8, var9, var10);
  455.                } finally {
  456.                   var5.endPaint();
  457.                }
  458.             } else {
  459.                if (var6 == null) {
  460.                   var4.setClip(var7, var8, var9, var10);
  461.                }
  462.  
  463.                if (!this.rectangleIsObscured(var7, var8, var9, var10)) {
  464.                   if (!var13) {
  465.                      this.paintComponent(var4);
  466.                      this.paintBorder(var4);
  467.                   } else {
  468.                      this.printComponent(var4);
  469.                      this.printBorder(var4);
  470.                   }
  471.                }
  472.  
  473.                if (!var13) {
  474.                   this.paintChildren(var4);
  475.                } else {
  476.                   this.printChildren(var4);
  477.                }
  478.             }
  479.          } finally {
  480.             var4.dispose();
  481.             if (var2) {
  482.                this.setFlag(1, false);
  483.                this.setFlag(2, false);
  484.                this.setFlag(11, false);
  485.                this.setFlag(12, false);
  486.             }
  487.  
  488.          }
  489.  
  490.       }
  491.    }
  492.  
  493.    void paintForceDoubleBuffered(Graphics var1) {
  494.       RepaintManager var2 = RepaintManager.currentManager(this);
  495.       Rectangle var3 = var1.getClipBounds();
  496.       var2.beginPaint();
  497.       this.setFlag(13, true);
  498.  
  499.       try {
  500.          var2.paint(this, this, var1, var3.x, var3.y, var3.width, var3.height);
  501.       } finally {
  502.          var2.endPaint();
  503.          this.setFlag(13, false);
  504.       }
  505.  
  506.    }
  507.  
  508.    boolean isPainting() {
  509.       for(Object var1 = this; var1 != null; var1 = ((Container)var1).getParent()) {
  510.          if (var1 instanceof JComponent && ((JComponent)var1).getFlag(1)) {
  511.             return true;
  512.          }
  513.       }
  514.  
  515.       return false;
  516.    }
  517.  
  518.    private void adjustPaintFlags() {
  519.       Object var1 = null;
  520.  
  521.       for(Container var2 = this.getParent(); var2 != null; var2 = var2.getParent()) {
  522.          if (var2 instanceof JComponent) {
  523.             JComponent var3 = (JComponent)var2;
  524.             if (var3.getFlag(1)) {
  525.                this.setFlag(1, true);
  526.             }
  527.  
  528.             if (var3.getFlag(2)) {
  529.                this.setFlag(2, true);
  530.             }
  531.  
  532.             if (var3.getFlag(11)) {
  533.                this.setFlag(11, true);
  534.             }
  535.  
  536.             if (var3.getFlag(12)) {
  537.                this.setFlag(12, true);
  538.             }
  539.             break;
  540.          }
  541.       }
  542.  
  543.    }
  544.  
  545.    public void printAll(Graphics var1) {
  546.       this.setFlag(12, true);
  547.  
  548.       try {
  549.          this.print(var1);
  550.       } finally {
  551.          this.setFlag(12, false);
  552.       }
  553.  
  554.    }
  555.  
  556.    public void print(Graphics var1) {
  557.       this.setFlag(11, true);
  558.       this.firePropertyChange("paintingForPrint", false, true);
  559.  
  560.       try {
  561.          this.paint(var1);
  562.       } finally {
  563.          this.setFlag(11, false);
  564.          this.firePropertyChange("paintingForPrint", true, false);
  565.       }
  566.  
  567.    }
  568.  
  569.    protected void printComponent(Graphics var1) {
  570.       this.paintComponent(var1);
  571.    }
  572.  
  573.    protected void printChildren(Graphics var1) {
  574.       this.paintChildren(var1);
  575.    }
  576.  
  577.    protected void printBorder(Graphics var1) {
  578.       this.paintBorder(var1);
  579.    }
  580.  
  581.    public boolean isPaintingTile() {
  582.       return this.getFlag(2);
  583.    }
  584.  
  585.    public final boolean isPaintingForPrint() {
  586.       return this.getFlag(11);
  587.    }
  588.  
  589.    /** @deprecated */
  590.    @Deprecated
  591.    public boolean isManagingFocus() {
  592.       return false;
  593.    }
  594.  
  595.    private void registerNextFocusableComponent() {
  596.       this.registerNextFocusableComponent(this.getNextFocusableComponent());
  597.    }
  598.  
  599.    private void registerNextFocusableComponent(Component var1) {
  600.       if (var1 != null) {
  601.          Object var2 = this.isFocusCycleRoot() ? this : this.getFocusCycleRootAncestor();
  602.          Object var3 = ((Container)var2).getFocusTraversalPolicy();
  603.          if (!(var3 instanceof LegacyGlueFocusTraversalPolicy)) {
  604.             var3 = new LegacyGlueFocusTraversalPolicy((FocusTraversalPolicy)var3);
  605.             ((Container)var2).setFocusTraversalPolicy((FocusTraversalPolicy)var3);
  606.          }
  607.  
  608.          ((LegacyGlueFocusTraversalPolicy)var3).setNextFocusableComponent(this, var1);
  609.       }
  610.    }
  611.  
  612.    private void deregisterNextFocusableComponent() {
  613.       Component var1 = this.getNextFocusableComponent();
  614.       if (var1 != null) {
  615.          Object var2 = this.isFocusCycleRoot() ? this : this.getFocusCycleRootAncestor();
  616.          if (var2 != null) {
  617.             FocusTraversalPolicy var3 = ((Container)var2).getFocusTraversalPolicy();
  618.             if (var3 instanceof LegacyGlueFocusTraversalPolicy) {
  619.                ((LegacyGlueFocusTraversalPolicy)var3).unsetNextFocusableComponent(this, var1);
  620.             }
  621.  
  622.          }
  623.       }
  624.    }
  625.  
  626.    /** @deprecated */
  627.    @Deprecated
  628.    public void setNextFocusableComponent(Component var1) {
  629.       boolean var2 = this.isDisplayable();
  630.       if (var2) {
  631.          this.deregisterNextFocusableComponent();
  632.       }
  633.  
  634.       this.putClientProperty("nextFocus", var1);
  635.       if (var2) {
  636.          this.registerNextFocusableComponent(var1);
  637.       }
  638.  
  639.    }
  640.  
  641.    /** @deprecated */
  642.    @Deprecated
  643.    public Component getNextFocusableComponent() {
  644.       return (Component)this.getClientProperty("nextFocus");
  645.    }
  646.  
  647.    public void setRequestFocusEnabled(boolean var1) {
  648.       this.setFlag(22, !var1);
  649.    }
  650.  
  651.    public boolean isRequestFocusEnabled() {
  652.       return !this.getFlag(22);
  653.    }
  654.  
  655.    public void requestFocus() {
  656.       super.requestFocus();
  657.    }
  658.  
  659.    public boolean requestFocus(boolean var1) {
  660.       return super.requestFocus(var1);
  661.    }
  662.  
  663.    public boolean requestFocusInWindow() {
  664.       return super.requestFocusInWindow();
  665.    }
  666.  
  667.    protected boolean requestFocusInWindow(boolean var1) {
  668.       return super.requestFocusInWindow(var1);
  669.    }
  670.  
  671.    public void grabFocus() {
  672.       this.requestFocus();
  673.    }
  674.  
  675.    public void setVerifyInputWhenFocusTarget(boolean var1) {
  676.       boolean var2 = this.verifyInputWhenFocusTarget;
  677.       this.verifyInputWhenFocusTarget = var1;
  678.       this.firePropertyChange("verifyInputWhenFocusTarget", var2, var1);
  679.    }
  680.  
  681.    public boolean getVerifyInputWhenFocusTarget() {
  682.       return this.verifyInputWhenFocusTarget;
  683.    }
  684.  
  685.    public FontMetrics getFontMetrics(Font var1) {
  686.       return SwingUtilities2.getFontMetrics(this, var1);
  687.    }
  688.  
  689.    public void setPreferredSize(Dimension var1) {
  690.       super.setPreferredSize(var1);
  691.    }
  692.  
  693.    public Dimension getPreferredSize() {
  694.       if (this.isPreferredSizeSet()) {
  695.          return super.getPreferredSize();
  696.       } else {
  697.          Dimension var1 = null;
  698.          if (this.field_0 != null) {
  699.             var1 = this.field_0.getPreferredSize(this);
  700.          }
  701.  
  702.          return var1 != null ? var1 : super.getPreferredSize();
  703.       }
  704.    }
  705.  
  706.    public void setMaximumSize(Dimension var1) {
  707.       super.setMaximumSize(var1);
  708.    }
  709.  
  710.    public Dimension getMaximumSize() {
  711.       if (this.isMaximumSizeSet()) {
  712.          return super.getMaximumSize();
  713.       } else {
  714.          Dimension var1 = null;
  715.          if (this.field_0 != null) {
  716.             var1 = this.field_0.getMaximumSize(this);
  717.          }
  718.  
  719.          return var1 != null ? var1 : super.getMaximumSize();
  720.       }
  721.    }
  722.  
  723.    public void setMinimumSize(Dimension var1) {
  724.       super.setMinimumSize(var1);
  725.    }
  726.  
  727.    public Dimension getMinimumSize() {
  728.       if (this.isMinimumSizeSet()) {
  729.          return super.getMinimumSize();
  730.       } else {
  731.          Dimension var1 = null;
  732.          if (this.field_0 != null) {
  733.             var1 = this.field_0.getMinimumSize(this);
  734.          }
  735.  
  736.          return var1 != null ? var1 : super.getMinimumSize();
  737.       }
  738.    }
  739.  
  740.    public boolean contains(int var1, int var2) {
  741.       return this.field_0 != null ? this.field_0.contains(this, var1, var2) : super.contains(var1, var2);
  742.    }
  743.  
  744.    public void setBorder(Border var1) {
  745.       Border var2 = this.border;
  746.       this.border = var1;
  747.       this.firePropertyChange("border", var2, var1);
  748.       if (var1 != var2) {
  749.          if (var1 == null || var2 == null || !var1.getBorderInsets(this).equals(var2.getBorderInsets(this))) {
  750.             this.revalidate();
  751.          }
  752.  
  753.          this.repaint();
  754.       }
  755.  
  756.    }
  757.  
  758.    public Border getBorder() {
  759.       return this.border;
  760.    }
  761.  
  762.    public Insets getInsets() {
  763.       return this.border != null ? this.border.getBorderInsets(this) : super.getInsets();
  764.    }
  765.  
  766.    public Insets getInsets(Insets var1) {
  767.       if (var1 == null) {
  768.          var1 = new Insets(0, 0, 0, 0);
  769.       }
  770.  
  771.       if (this.border != null) {
  772.          return this.border instanceof AbstractBorder ? ((AbstractBorder)this.border).getBorderInsets(this, var1) : this.border.getBorderInsets(this);
  773.       } else {
  774.          var1.left = var1.top = var1.right = var1.bottom = 0;
  775.          return var1;
  776.       }
  777.    }
  778.  
  779.    public float getAlignmentY() {
  780.       return this.isAlignmentYSet ? this.alignmentY : super.getAlignmentY();
  781.    }
  782.  
  783.    public void setAlignmentY(float var1) {
  784.       this.alignmentY = var1 > 1.0F ? 1.0F : (var1 < 0.0F ? 0.0F : var1);
  785.       this.isAlignmentYSet = true;
  786.    }
  787.  
  788.    public float getAlignmentX() {
  789.       return this.isAlignmentXSet ? this.alignmentX : super.getAlignmentX();
  790.    }
  791.  
  792.    public void setAlignmentX(float var1) {
  793.       this.alignmentX = var1 > 1.0F ? 1.0F : (var1 < 0.0F ? 0.0F : var1);
  794.       this.isAlignmentXSet = true;
  795.    }
  796.  
  797.    public void setInputVerifier(InputVerifier var1) {
  798.       InputVerifier var2 = (InputVerifier)this.getClientProperty(INPUT_VERIFIER_KEY);
  799.       this.putClientProperty(INPUT_VERIFIER_KEY, var1);
  800.       this.firePropertyChange("inputVerifier", var2, var1);
  801.    }
  802.  
  803.    public InputVerifier getInputVerifier() {
  804.       return (InputVerifier)this.getClientProperty(INPUT_VERIFIER_KEY);
  805.    }
  806.  
  807.    public Graphics getGraphics() {
  808.       if (DEBUG_GRAPHICS_LOADED && this.shouldDebugGraphics() != 0) {
  809.          DebugGraphics var1 = new DebugGraphics(super.getGraphics(), this);
  810.          return var1;
  811.       } else {
  812.          return super.getGraphics();
  813.       }
  814.    }
  815.  
  816.    public void setDebugGraphicsOptions(int var1) {
  817.       DebugGraphics.setDebugOptions(this, var1);
  818.    }
  819.  
  820.    public int getDebugGraphicsOptions() {
  821.       return DebugGraphics.getDebugOptions(this);
  822.    }
  823.  
  824.    int shouldDebugGraphics() {
  825.       return DebugGraphics.shouldComponentDebug(this);
  826.    }
  827.  
  828.    public void registerKeyboardAction(ActionListener var1, String var2, KeyStroke var3, int var4) {
  829.       InputMap var5 = this.getInputMap(var4, true);
  830.       if (var5 != null) {
  831.          ActionMap var6 = this.getActionMap(true);
  832.          ActionStandin var7 = new ActionStandin(this, var1, var2);
  833.          var5.put(var3, var7);
  834.          if (var6 != null) {
  835.             var6.put(var7, var7);
  836.          }
  837.       }
  838.  
  839.    }
  840.  
  841.    private void registerWithKeyboardManager(boolean var1) {
  842.       InputMap var2 = this.getInputMap(2, false);
  843.       Hashtable var4 = (Hashtable)this.getClientProperty("_WhenInFocusedWindow");
  844.       KeyStroke[] var3;
  845.       if (var2 != null) {
  846.          var3 = var2.allKeys();
  847.          if (var3 != null) {
  848.             for(int var5 = var3.length - 1; var5 >= 0; --var5) {
  849.                if (!var1 || var4 == null || var4.get(var3[var5]) == null) {
  850.                   this.registerWithKeyboardManager(var3[var5]);
  851.                }
  852.  
  853.                if (var4 != null) {
  854.                   var4.remove(var3[var5]);
  855.                }
  856.             }
  857.          }
  858.       } else {
  859.          var3 = null;
  860.       }
  861.  
  862.       if (var4 != null && var4.size() > 0) {
  863.          Enumeration var7 = var4.keys();
  864.  
  865.          while(var7.hasMoreElements()) {
  866.             KeyStroke var6 = (KeyStroke)var7.nextElement();
  867.             this.unregisterWithKeyboardManager(var6);
  868.          }
  869.  
  870.          var4.clear();
  871.       }
  872.  
  873.       if (var3 != null && var3.length > 0) {
  874.          if (var4 == null) {
  875.             var4 = new Hashtable(var3.length);
  876.             this.putClientProperty("_WhenInFocusedWindow", var4);
  877.          }
  878.  
  879.          for(int var8 = var3.length - 1; var8 >= 0; --var8) {
  880.             var4.put(var3[var8], var3[var8]);
  881.          }
  882.       } else {
  883.          this.putClientProperty("_WhenInFocusedWindow", (Object)null);
  884.       }
  885.  
  886.    }
  887.  
  888.    private void unregisterWithKeyboardManager() {
  889.       Hashtable var1 = (Hashtable)this.getClientProperty("_WhenInFocusedWindow");
  890.       if (var1 != null && var1.size() > 0) {
  891.          Enumeration var2 = var1.keys();
  892.  
  893.          while(var2.hasMoreElements()) {
  894.             KeyStroke var3 = (KeyStroke)var2.nextElement();
  895.             this.unregisterWithKeyboardManager(var3);
  896.          }
  897.       }
  898.  
  899.       this.putClientProperty("_WhenInFocusedWindow", (Object)null);
  900.    }
  901.  
  902.    void componentInputMapChanged(ComponentInputMap var1) {
  903.       Object var2;
  904.       for(var2 = this.getInputMap(2, false); var2 != var1 && var2 != null; var2 = (ComponentInputMap)((InputMap)var2).getParent()) {
  905.       }
  906.  
  907.       if (var2 != null) {
  908.          this.registerWithKeyboardManager(false);
  909.       }
  910.  
  911.    }
  912.  
  913.    private void registerWithKeyboardManager(KeyStroke var1) {
  914.       KeyboardManager.getCurrentManager().registerKeyStroke(var1, this);
  915.    }
  916.  
  917.    private void unregisterWithKeyboardManager(KeyStroke var1) {
  918.       KeyboardManager.getCurrentManager().unregisterKeyStroke(var1, this);
  919.    }
  920.  
  921.    public void registerKeyboardAction(ActionListener var1, KeyStroke var2, int var3) {
  922.       this.registerKeyboardAction(var1, (String)null, var2, var3);
  923.    }
  924.  
  925.    public void unregisterKeyboardAction(KeyStroke var1) {
  926.       ActionMap var2 = this.getActionMap(false);
  927.  
  928.       for(int var3 = 0; var3 < 3; ++var3) {
  929.          InputMap var4 = this.getInputMap(var3, false);
  930.          if (var4 != null) {
  931.             Object var5 = var4.get(var1);
  932.             if (var2 != null && var5 != null) {
  933.                var2.remove(var5);
  934.             }
  935.  
  936.             var4.remove(var1);
  937.          }
  938.       }
  939.  
  940.    }
  941.  
  942.    public KeyStroke[] getRegisteredKeyStrokes() {
  943.       int[] var1 = new int[3];
  944.       KeyStroke[][] var2 = new KeyStroke[3][];
  945.  
  946.       for(int var3 = 0; var3 < 3; ++var3) {
  947.          InputMap var4 = this.getInputMap(var3, false);
  948.          var2[var3] = var4 != null ? var4.allKeys() : null;
  949.          var1[var3] = var2[var3] != null ? var2[var3].length : 0;
  950.       }
  951.  
  952.       KeyStroke[] var6 = new KeyStroke[var1[0] + var1[1] + var1[2]];
  953.       int var7 = 0;
  954.  
  955.       for(int var5 = 0; var7 < 3; ++var7) {
  956.          if (var1[var7] > 0) {
  957.             System.arraycopy(var2[var7], 0, var6, var5, var1[var7]);
  958.             var5 += var1[var7];
  959.          }
  960.       }
  961.  
  962.       return var6;
  963.    }
  964.  
  965.    public int getConditionForKeyStroke(KeyStroke var1) {
  966.       for(int var2 = 0; var2 < 3; ++var2) {
  967.          InputMap var3 = this.getInputMap(var2, false);
  968.          if (var3 != null && var3.get(var1) != null) {
  969.             return var2;
  970.          }
  971.       }
  972.  
  973.       return -1;
  974.    }
  975.  
  976.    public ActionListener getActionForKeyStroke(KeyStroke var1) {
  977.       ActionMap var2 = this.getActionMap(false);
  978.       if (var2 == null) {
  979.          return null;
  980.       } else {
  981.          for(int var3 = 0; var3 < 3; ++var3) {
  982.             InputMap var4 = this.getInputMap(var3, false);
  983.             if (var4 != null) {
  984.                Object var5 = var4.get(var1);
  985.                if (var5 != null) {
  986.                   Action var6 = var2.get(var5);
  987.                   if (var6 instanceof ActionStandin) {
  988.                      return javax.swing.JComponent.ActionStandin.access$000((ActionStandin)var6);
  989.                   }
  990.  
  991.                   return var6;
  992.                }
  993.             }
  994.          }
  995.  
  996.          return null;
  997.       }
  998.    }
  999.  
  1000.    public void resetKeyboardActions() {
  1001.       for(int var1 = 0; var1 < 3; ++var1) {
  1002.          InputMap var2 = this.getInputMap(var1, false);
  1003.          if (var2 != null) {
  1004.             var2.clear();
  1005.          }
  1006.       }
  1007.  
  1008.       ActionMap var3 = this.getActionMap(false);
  1009.       if (var3 != null) {
  1010.          var3.clear();
  1011.       }
  1012.  
  1013.    }
  1014.  
  1015.    public final void setInputMap(int var1, InputMap var2) {
  1016.       switch (var1) {
  1017.          case 0:
  1018.             this.focusInputMap = var2;
  1019.             this.setFlag(5, true);
  1020.             break;
  1021.          case 1:
  1022.             this.ancestorInputMap = var2;
  1023.             this.setFlag(6, true);
  1024.             break;
  1025.          case 2:
  1026.             if (var2 != null && !(var2 instanceof ComponentInputMap)) {
  1027.                throw new IllegalArgumentException("WHEN_IN_FOCUSED_WINDOW InputMaps must be of type ComponentInputMap");
  1028.             }
  1029.  
  1030.             this.windowInputMap = (ComponentInputMap)var2;
  1031.             this.setFlag(7, true);
  1032.             this.registerWithKeyboardManager(false);
  1033.             break;
  1034.          default:
  1035.             throw new IllegalArgumentException("condition must be one of JComponent.WHEN_IN_FOCUSED_WINDOW, JComponent.WHEN_FOCUSED or JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT");
  1036.       }
  1037.  
  1038.    }
  1039.  
  1040.    public final InputMap getInputMap(int var1) {
  1041.       return this.getInputMap(var1, true);
  1042.    }
  1043.  
  1044.    public final InputMap getInputMap() {
  1045.       return this.getInputMap(0, true);
  1046.    }
  1047.  
  1048.    public final void setActionMap(ActionMap var1) {
  1049.       this.actionMap = var1;
  1050.       this.setFlag(8, true);
  1051.    }
  1052.  
  1053.    public final ActionMap getActionMap() {
  1054.       return this.getActionMap(true);
  1055.    }
  1056.  
  1057.    final InputMap getInputMap(int var1, boolean var2) {
  1058.       switch (var1) {
  1059.          case 0:
  1060.             if (this.getFlag(5)) {
  1061.                return this.focusInputMap;
  1062.             }
  1063.  
  1064.             if (var2) {
  1065.                InputMap var5 = new InputMap();
  1066.                this.setInputMap(var1, var5);
  1067.                return var5;
  1068.             }
  1069.             break;
  1070.          case 1:
  1071.             if (this.getFlag(6)) {
  1072.                return this.ancestorInputMap;
  1073.             }
  1074.  
  1075.             if (var2) {
  1076.                InputMap var4 = new InputMap();
  1077.                this.setInputMap(var1, var4);
  1078.                return var4;
  1079.             }
  1080.             break;
  1081.          case 2:
  1082.             if (this.getFlag(7)) {
  1083.                return this.windowInputMap;
  1084.             }
  1085.  
  1086.             if (var2) {
  1087.                ComponentInputMap var3 = new ComponentInputMap(this);
  1088.                this.setInputMap(var1, var3);
  1089.                return var3;
  1090.             }
  1091.             break;
  1092.          default:
  1093.             throw new IllegalArgumentException("condition must be one of JComponent.WHEN_IN_FOCUSED_WINDOW, JComponent.WHEN_FOCUSED or JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT");
  1094.       }
  1095.  
  1096.       return null;
  1097.    }
  1098.  
  1099.    final ActionMap getActionMap(boolean var1) {
  1100.       if (this.getFlag(8)) {
  1101.          return this.actionMap;
  1102.       } else if (var1) {
  1103.          ActionMap var2 = new ActionMap();
  1104.          this.setActionMap(var2);
  1105.          return var2;
  1106.       } else {
  1107.          return null;
  1108.       }
  1109.    }
  1110.  
  1111.    public int getBaseline(int var1, int var2) {
  1112.       super.getBaseline(var1, var2);
  1113.       return this.field_0 != null ? this.field_0.getBaseline(this, var1, var2) : -1;
  1114.    }
  1115.  
  1116.    public Component.BaselineResizeBehavior getBaselineResizeBehavior() {
  1117.       return this.field_0 != null ? this.field_0.getBaselineResizeBehavior(this) : BaselineResizeBehavior.OTHER;
  1118.    }
  1119.  
  1120.    /** @deprecated */
  1121.    @Deprecated
  1122.    public boolean requestDefaultFocus() {
  1123.       Object var1 = this.isFocusCycleRoot() ? this : this.getFocusCycleRootAncestor();
  1124.       if (var1 == null) {
  1125.          return false;
  1126.       } else {
  1127.          Component var2 = ((Container)var1).getFocusTraversalPolicy().getDefaultComponent((Container)var1);
  1128.          if (var2 != null) {
  1129.             var2.requestFocus();
  1130.             return true;
  1131.          } else {
  1132.             return false;
  1133.          }
  1134.       }
  1135.    }
  1136.  
  1137.    public void setVisible(boolean var1) {
  1138.       if (var1 != this.isVisible()) {
  1139.          super.setVisible(var1);
  1140.          Container var2 = this.getParent();
  1141.          if (var2 != null) {
  1142.             Rectangle var3 = this.getBounds();
  1143.             var2.repaint(var3.x, var3.y, var3.width, var3.height);
  1144.          }
  1145.  
  1146.          this.revalidate();
  1147.       }
  1148.  
  1149.    }
  1150.  
  1151.    public void setEnabled(boolean var1) {
  1152.       boolean var2 = this.isEnabled();
  1153.       super.setEnabled(var1);
  1154.       this.firePropertyChange("enabled", var2, var1);
  1155.       if (var1 != var2) {
  1156.          this.repaint();
  1157.       }
  1158.  
  1159.    }
  1160.  
  1161.    public void setForeground(Color var1) {
  1162.       Color var2 = this.getForeground();
  1163.       super.setForeground(var1);
  1164.       if (var2 != null) {
  1165.          if (var2.equals(var1)) {
  1166.             return;
  1167.          }
  1168.       } else if (var1 == null || var1.equals(var2)) {
  1169.          return;
  1170.       }
  1171.  
  1172.       this.repaint();
  1173.    }
  1174.  
  1175.    public void setBackground(Color var1) {
  1176.       Color var2 = this.getBackground();
  1177.       super.setBackground(var1);
  1178.       if (var2 != null) {
  1179.          if (var2.equals(var1)) {
  1180.             return;
  1181.          }
  1182.       } else if (var1 == null || var1.equals(var2)) {
  1183.          return;
  1184.       }
  1185.  
  1186.       this.repaint();
  1187.    }
  1188.  
  1189.    public void setFont(Font var1) {
  1190.       Font var2 = this.getFont();
  1191.       super.setFont(var1);
  1192.       if (var1 != var2) {
  1193.          this.revalidate();
  1194.          this.repaint();
  1195.       }
  1196.  
  1197.    }
  1198.  
  1199.    public static Locale getDefaultLocale() {
  1200.       Locale var0 = (Locale)SwingUtilities.appContextGet("JComponent.defaultLocale");
  1201.       if (var0 == null) {
  1202.          var0 = Locale.getDefault();
  1203.          setDefaultLocale(var0);
  1204.       }
  1205.  
  1206.       return var0;
  1207.    }
  1208.  
  1209.    public static void setDefaultLocale(Locale var0) {
  1210.       SwingUtilities.appContextPut("JComponent.defaultLocale", var0);
  1211.    }
  1212.  
  1213.    protected void processComponentKeyEvent(KeyEvent var1) {
  1214.    }
  1215.  
  1216.    protected void processKeyEvent(KeyEvent var1) {
  1217.       super.processKeyEvent(var1);
  1218.       if (!var1.isConsumed()) {
  1219.          this.processComponentKeyEvent(var1);
  1220.       }
  1221.  
  1222.       boolean var3 = javax.swing.JComponent.KeyboardState.shouldProcess(var1);
  1223.       if (!var1.isConsumed()) {
  1224.          if (var3 && this.processKeyBindings(var1, var1.getID() == 401)) {
  1225.             var1.consume();
  1226.          }
  1227.  
  1228.       }
  1229.    }
  1230.  
  1231.    protected boolean processKeyBinding(KeyStroke var1, KeyEvent var2, int var3, boolean var4) {
  1232.       InputMap var5 = this.getInputMap(var3, false);
  1233.       ActionMap var6 = this.getActionMap(false);
  1234.       if (var5 != null && var6 != null && this.isEnabled()) {
  1235.          Object var7 = var5.get(var1);
  1236.          Action var8 = var7 == null ? null : var6.get(var7);
  1237.          if (var8 != null) {
  1238.             return SwingUtilities.notifyAction(var8, var1, var2, this, var2.getModifiers());
  1239.          }
  1240.       }
  1241.  
  1242.       return false;
  1243.    }
  1244.  
  1245.    boolean processKeyBindings(KeyEvent var1, boolean var2) {
  1246.       if (!SwingUtilities.isValidKeyEventForKeyBindings(var1)) {
  1247.          return false;
  1248.       } else {
  1249.          KeyStroke var3;
  1250.          if (var1.getID() == 400) {
  1251.             var3 = KeyStroke.getKeyStroke(var1.getKeyChar());
  1252.          } else {
  1253.             var3 = KeyStroke.getKeyStroke(var1.getKeyCode(), var1.getModifiers(), !var2);
  1254.          }
  1255.  
  1256.          if (this.processKeyBinding(var3, var1, 0, var2)) {
  1257.             return true;
  1258.          } else {
  1259.             Object var4;
  1260.             for(var4 = this; var4 != null && !(var4 instanceof Window) && !(var4 instanceof Applet); var4 = ((Container)var4).getParent()) {
  1261.                if (var4 instanceof JComponent && ((JComponent)var4).processKeyBinding(var3, var1, 1, var2)) {
  1262.                   return true;
  1263.                }
  1264.  
  1265.                if (var4 instanceof JInternalFrame && processKeyBindingsForAllComponents(var1, (Container)var4, var2)) {
  1266.                   return true;
  1267.                }
  1268.             }
  1269.  
  1270.             return var4 != null ? processKeyBindingsForAllComponents(var1, (Container)var4, var2) : false;
  1271.          }
  1272.       }
  1273.    }
  1274.  
  1275.    static boolean processKeyBindingsForAllComponents(KeyEvent var0, Container var1, boolean var2) {
  1276.       while(!KeyboardManager.getCurrentManager().fireKeyboardAction(var0, var2, (Container)var1)) {
  1277.          if (!(var1 instanceof Popup.HeavyWeightWindow)) {
  1278.             return false;
  1279.          }
  1280.  
  1281.          var1 = ((Window)var1).getOwner();
  1282.       }
  1283.  
  1284.       return true;
  1285.    }
  1286.  
  1287.    public void setToolTipText(String var1) {
  1288.       String var2 = this.getToolTipText();
  1289.       this.putClientProperty("ToolTipText", var1);
  1290.       ToolTipManager var3 = ToolTipManager.sharedInstance();
  1291.       if (var1 != null) {
  1292.          if (var2 == null) {
  1293.             var3.registerComponent(this);
  1294.          }
  1295.       } else {
  1296.          var3.unregisterComponent(this);
  1297.       }
  1298.  
  1299.    }
  1300.  
  1301.    public String getToolTipText() {
  1302.       return (String)this.getClientProperty("ToolTipText");
  1303.    }
  1304.  
  1305.    public String getToolTipText(MouseEvent var1) {
  1306.       return this.getToolTipText();
  1307.    }
  1308.  
  1309.    public Point getToolTipLocation(MouseEvent var1) {
  1310.       return null;
  1311.    }
  1312.  
  1313.    public Point getPopupLocation(MouseEvent var1) {
  1314.       return null;
  1315.    }
  1316.  
  1317.    public JToolTip createToolTip() {
  1318.       JToolTip var1 = new JToolTip();
  1319.       var1.setComponent(this);
  1320.       return var1;
  1321.    }
  1322.  
  1323.    public void scrollRectToVisible(Rectangle var1) {
  1324.       int var3 = this.getX();
  1325.       int var4 = this.getY();
  1326.  
  1327.       Container var2;
  1328.       for(var2 = this.getParent(); var2 != null && !(var2 instanceof JComponent) && !(var2 instanceof CellRendererPane); var2 = var2.getParent()) {
  1329.          Rectangle var5 = var2.getBounds();
  1330.          var3 += var5.x;
  1331.          var4 += var5.y;
  1332.       }
  1333.  
  1334.       if (var2 != null && !(var2 instanceof CellRendererPane)) {
  1335.          var1.x += var3;
  1336.          var1.y += var4;
  1337.          ((JComponent)var2).scrollRectToVisible(var1);
  1338.          var1.x -= var3;
  1339.          var1.y -= var4;
  1340.       }
  1341.  
  1342.    }
  1343.  
  1344.    public void setAutoscrolls(boolean var1) {
  1345.       this.setFlag(25, true);
  1346.       if (this.autoscrolls != var1) {
  1347.          this.autoscrolls = var1;
  1348.          if (var1) {
  1349.             this.enableEvents(16L);
  1350.             this.enableEvents(32L);
  1351.          } else {
  1352.             Autoscroller.stop(this);
  1353.          }
  1354.       }
  1355.  
  1356.    }
  1357.  
  1358.    public boolean getAutoscrolls() {
  1359.       return this.autoscrolls;
  1360.    }
  1361.  
  1362.    public void setTransferHandler(TransferHandler var1) {
  1363.       TransferHandler var2 = (TransferHandler)this.getClientProperty(TRANSFER_HANDLER_KEY);
  1364.       this.putClientProperty(TRANSFER_HANDLER_KEY, var1);
  1365.       SwingUtilities.installSwingDropTargetAsNecessary(this, var1);
  1366.       this.firePropertyChange("transferHandler", var2, var1);
  1367.    }
  1368.  
  1369.    public TransferHandler getTransferHandler() {
  1370.       return (TransferHandler)this.getClientProperty(TRANSFER_HANDLER_KEY);
  1371.    }
  1372.  
  1373.    TransferHandler.DropLocation dropLocationForPoint(Point var1) {
  1374.       return null;
  1375.    }
  1376.  
  1377.    Object setDropLocation(TransferHandler.DropLocation var1, Object var2, boolean var3) {
  1378.       return null;
  1379.    }
  1380.  
  1381.    void dndDone() {
  1382.    }
  1383.  
  1384.    protected void processMouseEvent(MouseEvent var1) {
  1385.       if (this.autoscrolls && var1.getID() == 502) {
  1386.          Autoscroller.stop(this);
  1387.       }
  1388.  
  1389.       super.processMouseEvent(var1);
  1390.    }
  1391.  
  1392.    protected void processMouseMotionEvent(MouseEvent var1) {
  1393.       boolean var2 = true;
  1394.       if (this.autoscrolls && var1.getID() == 506) {
  1395.          var2 = !Autoscroller.isRunning(this);
  1396.          Autoscroller.processMouseDragged(var1);
  1397.       }
  1398.  
  1399.       if (var2) {
  1400.          super.processMouseMotionEvent(var1);
  1401.       }
  1402.  
  1403.    }
  1404.  
  1405.    void superProcessMouseMotionEvent(MouseEvent var1) {
  1406.       super.processMouseMotionEvent(var1);
  1407.    }
  1408.  
  1409.    void setCreatedDoubleBuffer(boolean var1) {
  1410.       this.setFlag(9, var1);
  1411.    }
  1412.  
  1413.    boolean getCreatedDoubleBuffer() {
  1414.       return this.getFlag(9);
  1415.    }
  1416.  
  1417.    /** @deprecated */
  1418.    @Deprecated
  1419.    public void enable() {
  1420.       if (!this.isEnabled()) {
  1421.          super.enable();
  1422.          if (this.accessibleContext != null) {
  1423.             this.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.ENABLED);
  1424.          }
  1425.       }
  1426.  
  1427.    }
  1428.  
  1429.    /** @deprecated */
  1430.    @Deprecated
  1431.    public void disable() {
  1432.       if (this.isEnabled()) {
  1433.          super.disable();
  1434.          if (this.accessibleContext != null) {
  1435.             this.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.ENABLED, (Object)null);
  1436.          }
  1437.       }
  1438.  
  1439.    }
  1440.  
  1441.    public AccessibleContext getAccessibleContext() {
  1442.       return this.accessibleContext;
  1443.    }
  1444.  
  1445.    private ArrayTable getClientProperties() {
  1446.       if (this.clientProperties == null) {
  1447.          this.clientProperties = new ArrayTable();
  1448.       }
  1449.  
  1450.       return this.clientProperties;
  1451.    }
  1452.  
  1453.    public final Object getClientProperty(Object var1) {
  1454.       if (var1 == SwingUtilities2.AA_TEXT_PROPERTY_KEY) {
  1455.          return this.aaTextInfo;
  1456.       } else if (var1 == SwingUtilities2.COMPONENT_UI_PROPERTY_KEY) {
  1457.          return this.field_0;
  1458.       } else if (this.clientProperties == null) {
  1459.          return null;
  1460.       } else {
  1461.          synchronized(this.clientProperties) {
  1462.             return this.clientProperties.get(var1);
  1463.          }
  1464.       }
  1465.    }
  1466.  
  1467.    public final void putClientProperty(Object var1, Object var2) {
  1468.       if (var1 == SwingUtilities2.AA_TEXT_PROPERTY_KEY) {
  1469.          this.aaTextInfo = var2;
  1470.       } else if (var2 != null || this.clientProperties != null) {
  1471.          ArrayTable var3 = this.getClientProperties();
  1472.          Object var4;
  1473.          synchronized(var3) {
  1474.             var4 = var3.get(var1);
  1475.             if (var2 != null) {
  1476.                var3.put(var1, var2);
  1477.             } else {
  1478.                if (var4 == null) {
  1479.                   return;
  1480.                }
  1481.  
  1482.                var3.remove(var1);
  1483.             }
  1484.          }
  1485.  
  1486.          this.clientPropertyChanged(var1, var4, var2);
  1487.          this.firePropertyChange(var1.toString(), var4, var2);
  1488.       }
  1489.    }
  1490.  
  1491.    void clientPropertyChanged(Object var1, Object var2, Object var3) {
  1492.    }
  1493.  
  1494.    void setUIProperty(String var1, Object var2) {
  1495.       if (var1 == "opaque") {
  1496.          if (!this.getFlag(24)) {
  1497.             this.setOpaque((Boolean)var2);
  1498.             this.setFlag(24, false);
  1499.          }
  1500.       } else if (var1 == "autoscrolls") {
  1501.          if (!this.getFlag(25)) {
  1502.             this.setAutoscrolls((Boolean)var2);
  1503.             this.setFlag(25, false);
  1504.          }
  1505.       } else if (var1 == "focusTraversalKeysForward") {
  1506.          if (!this.getFlag(26)) {
  1507.             super.setFocusTraversalKeys(0, (Set)var2);
  1508.          }
  1509.       } else {
  1510.          if (var1 != "focusTraversalKeysBackward") {
  1511.             throw new IllegalArgumentException("property \"" + var1 + "\" cannot be set using this method");
  1512.          }
  1513.  
  1514.          if (!this.getFlag(27)) {
  1515.             super.setFocusTraversalKeys(1, (Set)var2);
  1516.          }
  1517.       }
  1518.  
  1519.    }
  1520.  
  1521.    public void setFocusTraversalKeys(int var1, Set<? extends AWTKeyStroke> var2) {
  1522.       if (var1 == 0) {
  1523.          this.setFlag(26, true);
  1524.       } else if (var1 == 1) {
  1525.          this.setFlag(27, true);
  1526.       }
  1527.  
  1528.       super.setFocusTraversalKeys(var1, var2);
  1529.    }
  1530.  
  1531.    public static boolean isLightweightComponent(Component var0) {
  1532.       return var0.getPeer() instanceof LightweightPeer;
  1533.    }
  1534.  
  1535.    /** @deprecated */
  1536.    @Deprecated
  1537.    public void reshape(int var1, int var2, int var3, int var4) {
  1538.       super.reshape(var1, var2, var3, var4);
  1539.    }
  1540.  
  1541.    public Rectangle getBounds(Rectangle var1) {
  1542.       if (var1 == null) {
  1543.          return new Rectangle(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  1544.       } else {
  1545.          var1.setBounds(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  1546.          return var1;
  1547.       }
  1548.    }
  1549.  
  1550.    public Dimension getSize(Dimension var1) {
  1551.       if (var1 == null) {
  1552.          return new Dimension(this.getWidth(), this.getHeight());
  1553.       } else {
  1554.          var1.setSize(this.getWidth(), this.getHeight());
  1555.          return var1;
  1556.       }
  1557.    }
  1558.  
  1559.    public Point getLocation(Point var1) {
  1560.       if (var1 == null) {
  1561.          return new Point(this.getX(), this.getY());
  1562.       } else {
  1563.          var1.setLocation(this.getX(), this.getY());
  1564.          return var1;
  1565.       }
  1566.    }
  1567.  
  1568.    public int getX() {
  1569.       return super.getX();
  1570.    }
  1571.  
  1572.    public int getY() {
  1573.       return super.getY();
  1574.    }
  1575.  
  1576.    public int getWidth() {
  1577.       return super.getWidth();
  1578.    }
  1579.  
  1580.    public int getHeight() {
  1581.       return super.getHeight();
  1582.    }
  1583.  
  1584.    public boolean isOpaque() {
  1585.       return this.getFlag(3);
  1586.    }
  1587.  
  1588.    public void setOpaque(boolean var1) {
  1589.       boolean var2 = this.getFlag(3);
  1590.       this.setFlag(3, var1);
  1591.       this.setFlag(24, true);
  1592.       this.firePropertyChange("opaque", var2, var1);
  1593.    }
  1594.  
  1595.    boolean rectangleIsObscured(int var1, int var2, int var3, int var4) {
  1596.       int var5 = this.getComponentCount();
  1597.  
  1598.       for(int var6 = 0; var6 < var5; ++var6) {
  1599.          Component var7 = this.getComponent(var6);
  1600.          int var8 = var7.getX();
  1601.          int var9 = var7.getY();
  1602.          int var10 = var7.getWidth();
  1603.          int var11 = var7.getHeight();
  1604.          if (var1 >= var8 && var1 + var3 <= var8 + var10 && var2 >= var9 && var2 + var4 <= var9 + var11 && var7.isVisible()) {
  1605.             if (var7 instanceof JComponent) {
  1606.                return ((JComponent)var7).isOpaque();
  1607.             }
  1608.  
  1609.             return false;
  1610.          }
  1611.       }
  1612.  
  1613.       return false;
  1614.    }
  1615.  
  1616.    static final void computeVisibleRect(Component var0, Rectangle var1) {
  1617.       Container var2 = var0.getParent();
  1618.       Rectangle var3 = var0.getBounds();
  1619.       if (var2 != null && !(var2 instanceof Window) && !(var2 instanceof Applet)) {
  1620.          computeVisibleRect(var2, var1);
  1621.          var1.x -= var3.x;
  1622.          var1.y -= var3.y;
  1623.          SwingUtilities.computeIntersection(0, 0, var3.width, var3.height, var1);
  1624.       } else {
  1625.          var1.setBounds(0, 0, var3.width, var3.height);
  1626.       }
  1627.  
  1628.    }
  1629.  
  1630.    public void computeVisibleRect(Rectangle var1) {
  1631.       computeVisibleRect(this, var1);
  1632.    }
  1633.  
  1634.    public Rectangle getVisibleRect() {
  1635.       Rectangle var1 = new Rectangle();
  1636.       this.computeVisibleRect(var1);
  1637.       return var1;
  1638.    }
  1639.  
  1640.    public void firePropertyChange(String var1, boolean var2, boolean var3) {
  1641.       super.firePropertyChange(var1, var2, var3);
  1642.    }
  1643.  
  1644.    public void firePropertyChange(String var1, int var2, int var3) {
  1645.       super.firePropertyChange(var1, var2, var3);
  1646.    }
  1647.  
  1648.    public void firePropertyChange(String var1, char var2, char var3) {
  1649.       super.firePropertyChange(var1, var2, var3);
  1650.    }
  1651.  
  1652.    protected void fireVetoableChange(String var1, Object var2, Object var3) throws PropertyVetoException {
  1653.       if (this.vetoableChangeSupport != null) {
  1654.          this.vetoableChangeSupport.fireVetoableChange(var1, var2, var3);
  1655.       }
  1656.    }
  1657.  
  1658.    public synchronized void addVetoableChangeListener(VetoableChangeListener var1) {
  1659.       if (this.vetoableChangeSupport == null) {
  1660.          this.vetoableChangeSupport = new VetoableChangeSupport(this);
  1661.       }
  1662.  
  1663.       this.vetoableChangeSupport.addVetoableChangeListener(var1);
  1664.    }
  1665.  
  1666.    public synchronized void removeVetoableChangeListener(VetoableChangeListener var1) {
  1667.       if (this.vetoableChangeSupport != null) {
  1668.          this.vetoableChangeSupport.removeVetoableChangeListener(var1);
  1669.       }
  1670.    }
  1671.  
  1672.    public synchronized VetoableChangeListener[] getVetoableChangeListeners() {
  1673.       return this.vetoableChangeSupport == null ? new VetoableChangeListener[0] : this.vetoableChangeSupport.getVetoableChangeListeners();
  1674.    }
  1675.  
  1676.    public Container getTopLevelAncestor() {
  1677.       for(Object var1 = this; var1 != null; var1 = ((Container)var1).getParent()) {
  1678.          if (var1 instanceof Window || var1 instanceof Applet) {
  1679.             return (Container)var1;
  1680.          }
  1681.       }
  1682.  
  1683.       return null;
  1684.    }
  1685.  
  1686.    private AncestorNotifier getAncestorNotifier() {
  1687.       return (AncestorNotifier)this.getClientProperty(ANCESTOR_NOTIFIER_KEY);
  1688.    }
  1689.  
  1690.    public void addAncestorListener(AncestorListener var1) {
  1691.       AncestorNotifier var2 = this.getAncestorNotifier();
  1692.       if (var2 == null) {
  1693.          var2 = new AncestorNotifier(this);
  1694.          this.putClientProperty(ANCESTOR_NOTIFIER_KEY, var2);
  1695.       }
  1696.  
  1697.       var2.addAncestorListener(var1);
  1698.    }
  1699.  
  1700.    public void removeAncestorListener(AncestorListener var1) {
  1701.       AncestorNotifier var2 = this.getAncestorNotifier();
  1702.       if (var2 != null) {
  1703.          var2.removeAncestorListener(var1);
  1704.          if (var2.listenerList.getListenerList().length == 0) {
  1705.             var2.removeAllListeners();
  1706.             this.putClientProperty(ANCESTOR_NOTIFIER_KEY, (Object)null);
  1707.          }
  1708.  
  1709.       }
  1710.    }
  1711.  
  1712.    public AncestorListener[] getAncestorListeners() {
  1713.       AncestorNotifier var1 = this.getAncestorNotifier();
  1714.       return var1 == null ? new AncestorListener[0] : var1.getAncestorListeners();
  1715.    }
  1716.  
  1717.    public <T extends EventListener> T[] getListeners(Class<T> var1) {
  1718.       EventListener[] var2;
  1719.       if (var1 == AncestorListener.class) {
  1720.          var2 = (EventListener[])this.getAncestorListeners();
  1721.       } else if (var1 == VetoableChangeListener.class) {
  1722.          var2 = (EventListener[])this.getVetoableChangeListeners();
  1723.       } else if (var1 == PropertyChangeListener.class) {
  1724.          var2 = (EventListener[])this.getPropertyChangeListeners();
  1725.       } else {
  1726.          var2 = this.listenerList.getListeners(var1);
  1727.       }
  1728.  
  1729.       return (T[])(var2.length == 0 ? super.getListeners(var1) : var2);
  1730.    }
  1731.  
  1732.    public void addNotify() {
  1733.       super.addNotify();
  1734.       this.firePropertyChange("ancestor", (Object)null, this.getParent());
  1735.       this.registerWithKeyboardManager(false);
  1736.       this.registerNextFocusableComponent();
  1737.    }
  1738.  
  1739.    public void removeNotify() {
  1740.       super.removeNotify();
  1741.       this.firePropertyChange("ancestor", this.getParent(), (Object)null);
  1742.       this.unregisterWithKeyboardManager();
  1743.       this.deregisterNextFocusableComponent();
  1744.       if (this.getCreatedDoubleBuffer()) {
  1745.          RepaintManager.currentManager(this).resetDoubleBuffer();
  1746.          this.setCreatedDoubleBuffer(false);
  1747.       }
  1748.  
  1749.       if (this.autoscrolls) {
  1750.          Autoscroller.stop(this);
  1751.       }
  1752.  
  1753.    }
  1754.  
  1755.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  1756.       RepaintManager.currentManager(this).addDirtyRegion(this, var3, var4, var5, var6);
  1757.    }
  1758.  
  1759.    public void repaint(Rectangle var1) {
  1760.       this.repaint(0L, var1.x, var1.y, var1.width, var1.height);
  1761.    }
  1762.  
  1763.    public void revalidate() {
  1764.       if (this.getParent() != null) {
  1765.          if (SwingUtilities.isEventDispatchThread()) {
  1766.             this.invalidate();
  1767.             RepaintManager.currentManager(this).addInvalidComponent(this);
  1768.          } else {
  1769.             2 var1 = new 2(this);
  1770.             SwingUtilities.invokeLater(var1);
  1771.          }
  1772.  
  1773.       }
  1774.    }
  1775.  
  1776.    public boolean isValidateRoot() {
  1777.       return false;
  1778.    }
  1779.  
  1780.    public boolean isOptimizedDrawingEnabled() {
  1781.       return true;
  1782.    }
  1783.  
  1784.    boolean isPaintingOrigin() {
  1785.       return false;
  1786.    }
  1787.  
  1788.    public void paintImmediately(int var1, int var2, int var3, int var4) {
  1789.       Object var5 = this;
  1790.       if (this.isShowing()) {
  1791.          while(!((JComponent)var5).isOpaque()) {
  1792.             Container var6 = ((Component)var5).getParent();
  1793.             if (var6 == null) {
  1794.                break;
  1795.             }
  1796.  
  1797.             var1 += ((Component)var5).getX();
  1798.             var2 += ((Component)var5).getY();
  1799.             var5 = var6;
  1800.             if (!(var6 instanceof JComponent)) {
  1801.                break;
  1802.             }
  1803.          }
  1804.  
  1805.          if (var5 instanceof JComponent) {
  1806.             ((JComponent)var5)._paintImmediately(var1, var2, var3, var4);
  1807.          } else {
  1808.             ((Component)var5).repaint(var1, var2, var3, var4);
  1809.          }
  1810.  
  1811.       }
  1812.    }
  1813.  
  1814.    public void paintImmediately(Rectangle var1) {
  1815.       this.paintImmediately(var1.x, var1.y, var1.width, var1.height);
  1816.    }
  1817.  
  1818.    boolean alwaysOnTop() {
  1819.       return false;
  1820.    }
  1821.  
  1822.    void setPaintingChild(Component var1) {
  1823.       this.paintingChild = var1;
  1824.    }
  1825.  
  1826.    void _paintImmediately(int param1, int param2, int param3, int param4) {
  1827.       // $FF: Couldn't be decompiled
  1828.    }
  1829.  
  1830.    void paintToOffscreen(Graphics var1, int var2, int var3, int var4, int var5, int var6, int var7) {
  1831.       try {
  1832.          this.setFlag(1, true);
  1833.          if (var3 + var5 < var7 || var2 + var4 < var6) {
  1834.             this.setFlag(2, true);
  1835.          }
  1836.  
  1837.          if (this.getFlag(13)) {
  1838.             this.paint(var1);
  1839.          } else {
  1840.             if (!this.rectangleIsObscured(var2, var3, var4, var5)) {
  1841.                this.paintComponent(var1);
  1842.                this.paintBorder(var1);
  1843.             }
  1844.  
  1845.             this.paintChildren(var1);
  1846.          }
  1847.       } finally {
  1848.          this.setFlag(1, false);
  1849.          this.setFlag(2, false);
  1850.       }
  1851.  
  1852.    }
  1853.  
  1854.    private int getObscuredState(int var1, int var2, int var3, int var4, int var5) {
  1855.       byte var6 = 0;
  1856.       Rectangle var7 = fetchRectangle();
  1857.  
  1858.       for(int var8 = var1 - 1; var8 >= 0; --var8) {
  1859.          Component var9 = this.getComponent(var8);
  1860.          if (var9.isVisible()) {
  1861.             boolean var11;
  1862.             if (var9 instanceof JComponent) {
  1863.                var11 = ((JComponent)var9).isOpaque();
  1864.                if (!var11 && var6 == 1) {
  1865.                   continue;
  1866.                }
  1867.             } else {
  1868.                var11 = true;
  1869.             }
  1870.  
  1871.             Rectangle var10 = var9.getBounds(var7);
  1872.             if (var11 && var2 >= var10.x && var2 + var4 <= var10.x + var10.width && var3 >= var10.y && var3 + var5 <= var10.y + var10.height) {
  1873.                recycleRectangle(var7);
  1874.                return 2;
  1875.             }
  1876.  
  1877.             if (var6 == 0 && var2 + var4 > var10.x && var3 + var5 > var10.y && var2 < var10.x + var10.width && var3 < var10.y + var10.height) {
  1878.                var6 = 1;
  1879.             }
  1880.          }
  1881.       }
  1882.  
  1883.       recycleRectangle(var7);
  1884.       return var6;
  1885.    }
  1886.  
  1887.    boolean checkIfChildObscuredBySibling() {
  1888.       return true;
  1889.    }
  1890.  
  1891.    private void setFlag(int var1, boolean var2) {
  1892.       if (var2) {
  1893.          this.flags |= 1 << var1;
  1894.       } else {
  1895.          this.flags &= ~(1 << var1);
  1896.       }
  1897.  
  1898.    }
  1899.  
  1900.    private boolean getFlag(int var1) {
  1901.       int var2 = 1 << var1;
  1902.       return (this.flags & var2) == var2;
  1903.    }
  1904.  
  1905.    static void setWriteObjCounter(JComponent var0, byte var1) {
  1906.       var0.flags = var0.flags & -4177921 | var1 << 14;
  1907.    }
  1908.  
  1909.    static byte getWriteObjCounter(JComponent var0) {
  1910.       return (byte)(var0.flags >> 14 & 255);
  1911.    }
  1912.  
  1913.    public void setDoubleBuffered(boolean var1) {
  1914.       this.setFlag(0, var1);
  1915.    }
  1916.  
  1917.    public boolean isDoubleBuffered() {
  1918.       return this.getFlag(0);
  1919.    }
  1920.  
  1921.    public JRootPane getRootPane() {
  1922.       return SwingUtilities.getRootPane(this);
  1923.    }
  1924.  
  1925.    void compWriteObjectNotify() {
  1926.       byte var1 = getWriteObjCounter(this);
  1927.       setWriteObjCounter(this, (byte)(var1 + 1));
  1928.       if (var1 == 0) {
  1929.          if (this.field_0 != null) {
  1930.             this.field_0.uninstallUI(this);
  1931.          }
  1932.  
  1933.          if (this.getToolTipText() != null || this instanceof JTableHeader) {
  1934.             ToolTipManager.sharedInstance().unregisterComponent(this);
  1935.          }
  1936.  
  1937.       }
  1938.    }
  1939.  
  1940.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  1941.       var1.defaultReadObject();
  1942.       ReadObjectCallback var2 = (ReadObjectCallback)readObjectCallbacks.get(var1);
  1943.       if (var2 == null) {
  1944.          try {
  1945.             readObjectCallbacks.put(var1, var2 = new ReadObjectCallback(this, var1));
  1946.          } catch (Exception var5) {
  1947.             throw new IOException(var5.toString());
  1948.          }
  1949.       }
  1950.  
  1951.       javax.swing.JComponent.ReadObjectCallback.access$300(var2, this);
  1952.       int var3 = var1.readInt();
  1953.       if (var3 > 0) {
  1954.          this.clientProperties = new ArrayTable();
  1955.  
  1956.          for(int var4 = 0; var4 < var3; ++var4) {
  1957.             this.clientProperties.put(var1.readObject(), var1.readObject());
  1958.          }
  1959.       }
  1960.  
  1961.       if (this.getToolTipText() != null) {
  1962.          ToolTipManager.sharedInstance().registerComponent(this);
  1963.       }
  1964.  
  1965.       setWriteObjCounter(this, (byte)0);
  1966.    }
  1967.  
  1968.    private void writeObject(ObjectOutputStream var1) throws IOException {
  1969.       var1.defaultWriteObject();
  1970.       if (this.getUIClassID().equals("ComponentUI")) {
  1971.          byte var2 = getWriteObjCounter(this);
  1972.          --var2;
  1973.          setWriteObjCounter(this, var2);
  1974.          if (var2 == 0 && this.field_0 != null) {
  1975.             this.field_0.installUI(this);
  1976.          }
  1977.       }
  1978.  
  1979.       ArrayTable.writeArrayTable(var1, this.clientProperties);
  1980.    }
  1981.  
  1982.    protected String paramString() {
  1983.       String var1 = this.isPreferredSizeSet() ? this.getPreferredSize().toString() : "";
  1984.       String var2 = this.isMinimumSizeSet() ? this.getMinimumSize().toString() : "";
  1985.       String var3 = this.isMaximumSizeSet() ? this.getMaximumSize().toString() : "";
  1986.       String var4 = this.border != null ? this.border.toString() : "";
  1987.       return super.paramString() + ",alignmentX=" + this.alignmentX + ",alignmentY=" + this.alignmentY + ",border=" + var4 + ",flags=" + this.flags + ",maximumSize=" + var3 + ",minimumSize=" + var2 + ",preferredSize=" + var1;
  1988.    }
  1989.  
  1990.    // $FF: synthetic method
  1991.    static boolean access$100() {
  1992.       return inInputVerifier;
  1993.    }
  1994.  
  1995.    // $FF: synthetic method
  1996.    static boolean access$102(boolean var0) {
  1997.       inInputVerifier = var0;
  1998.       return var0;
  1999.    }
  2000.  
  2001.    // $FF: synthetic method
  2002.    static Hashtable access$200() {
  2003.       return readObjectCallbacks;
  2004.    }
  2005. }
  2006.